﻿//using System;
//using System.Collections.Generic;
//using System.Linq;
//using System.Web;
//using System.Web.Mvc;

//namespace Crucible.Models
//{
//    public class NodeBinder : DefaultModelBinder
//    {
//        protected override object CreateModel(ControllerContext controllerContext, ModelBindingContext bindingContext, Type modelType)
//        {
//            ValueProviderResult result = bindingContext.ValueProvider.GetValue("Type");
//            NodeType type;
//            if (result != null && Enum.TryParse(result.AttemptedValue, out type))
//            {
//                switch (type)
//                {
//                    case NodeType.Assertion:
//                    case NodeType.Interpretation:
//                    case NodeType.Axiom:
//                        return base.CreateModel(controllerContext, bindingContext, typeof (Persuasive));
//                    case NodeType.Source:
//                        return base.CreateModel(controllerContext, bindingContext, typeof (Source));
//                    case NodeType.Originator:
//                        return base.CreateModel(controllerContext, bindingContext, typeof (Originator));
//                }
//            }
//            return null;
//        }
//    }
//}